"""
项目1：随机密码生成器（零基础版本）
功能：生成指定长度的随机密码
特点：不使用函数，完全面向过程，适合零基础学习
作者：计算机与人工智能协会
日期：2025
"""

import random
import string

# 打印欢迎信息
print("=" * 50)
print("        欢迎使用随机密码生成器")
print("=" * 50)
print()

# 主循环 - 持续运行直到用户选择退出
while True:
    # 显示菜单
    print("\n请选择模式：")
    print("1. 生成密码（字母+数字）")
    print("2. 退出程序")
    
    # 获取用户选择
    choice = input("\n请输入选项(1-2)：")
    
    # 如果选择生成密码
    if choice == "1":
        # 获取密码长度
        length_input = input("请输入密码长度(建议8-16位)：")
        
        # 检查输入是否是数字
        if not length_input.isdigit():
            print("输入错误，请输入数字！")
            continue  # 跳过本次循环，重新开始
        
        # 转换为整数
        length = int(length_input)
        
        # 验证密码长度
        if length < 4:
            print("密码长度太短，建议至少4位！")
            continue
        if length > 50:
            print("密码长度太长，建议不超过50位！")
            continue
        
        # 定义可用字符：大小写字母 + 数字
        characters = string.ascii_letters + string.digits
        # 等同于：characters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
        
        # 生成密码
        password = ""  # 创建空字符串
        
        # 循环length次，每次添加一个随机字符
        for i in range(length):
            # 从characters中随机选择一个字符
            random_char = random.choice(characters)
            # 添加到密码字符串中
            password = password + random_char
        
        # 显示生成的密码
        print("\n" + "=" * 50)
        print(f"生成的密码是：{password}")
        print(f"密码长度：{len(password)}位")
        print("=" * 50)
        
    # 如果选择退出
    elif choice == "2":
        print("\n感谢使用，再见！")
        break  # 退出循环，结束程序
    
    # 如果输入了其他选项
    else:
        print("输入错误，请输入1或2！")

